import axios from 'axios'
import store from '@/store'
import {Toast} from 'vant'
// 根据环境不同引入不同api地址
import {baseUrl} from '@/utils/base.js'
// create an axios instance
const service = axios.create({
  baseURL: baseUrl,
  // baseURL: 'http://192.168.1.111:80', // url = base api url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 8000 // request timeout
})
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'
// request拦截器 request interceptor
service.interceptors.request.use(
  config => {
    // 不传递默认开启loading
    if (!config.hideloading) {
      // loading
      Toast.loading({
        forbidClick: true,
        message: '加载中...'
      })
    }
    config.headers = {
      // "Content-Type": "application/json;charset=UTF-8",
      // token: localStorage.getItem('mytoken') || ''
    }
    // config.headers['token'] = localStorage.getItem('mytoken') || ''
    return config
  },
  error => {
    // do something with request error
    console.log(error) // for debug
    return Promise.reject(error)
  }
)
// respone拦截器
service.interceptors.response.use(
  response => {
    Toast.clear()
    const res = response.data
    console.log(res, '拦截')
    if (res.code && res.code !== 200) {
      // 登录超时,重新登录
      if (res.code === 401) {
        store.dispatch('FedLogOut').then(() => {
          location.reload()
        })
      }
      return Promise.reject(res || 'error')
    } else {
      return Promise.resolve(res)
    }
  },
  error => {
    Toast.clear()
    console.log('err' + error) // for debug
    return Promise.reject(error)
  }
)

export default service
